package com.sg.dto.biz.app.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @desc AddPlanTargetMqQueueComReqDto
 * @使用场景
 */
@Data
public class AddPlanTargetMqQueueComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * MQ队列名称 PLAN_TARGET_CALC_MQ_QUEUE:规划目标计算MQ排队 OKR_PLAN_TARGET_CALC_MQ_QUEUE:OKR目标计算MQ排队 KPI_PLAN_TARGET_CALC_MQ_QUEUE:绩效目标计算MQ排队 FINANCIAL_CALC_MQ_QUEUE:规划财务MQ排队
     */
    @NotNull(message = "MQ队列名称不能为空")
    @ApiModelProperty("MQ队列名称")
    private String mqQueueName;

    /**
     * MQ队列唯一主键ID
     */
    @NotNull(message = "MQ队列唯一主键ID不能为空")
    @ApiModelProperty("MQ队列唯一主键ID")
    private String mqPrimaryId;

    /**
     * 上一更新周期ID
     */
    @ApiModelProperty("上一更新周期ID")
    private String preUpdateCycleId;

    /**
     * 更新周期ID
     */
    @NotNull(message = "更新周期ID不能为空")
    @ApiModelProperty("更新周期ID")
    private String updateCycleId;

    /**
     * 更新周期开始时间
     */
    @NotNull(message = "更新周期开始时间不能为空")
    @ApiModelProperty("更新周期开始时间")
    private String updateCycleStartTime;

    /**
     * 更新周期结束时间
     */
    @NotNull(message = "更新周期结束时间不能为空")
    @ApiModelProperty("更新周期结束时间")
    private String updateCycleEndTime;

    /**
     * 更新周期类型标识
     */
    @NotNull(message = "更新周期类型标识不能为空")
    @ApiModelProperty("更新周期类型标识")
    private String updateCycleTypeCode;

    /**
     * 是否末级周期
     */
    @NotNull(message = "是否末级周期不能为空")
    @ApiModelProperty("是否末级周期")
    private String isLastCycle;

    /**
     * 父子中过程周期类型
     */
    @NotNull(message = "父子中过程周期类型不能为空")
    @ApiModelProperty("父子中过程周期类型")
    private String parentSubMidCycleType;

    /**
     * 被评对象目标周期标识
     */
    @NotNull(message = "被评对象目标周期标识不能为空")
    @ApiModelProperty("被评对象目标周期标识")
    private String evaObjTargetCycleCode;

    /**
     * 上级被评对象目标周期标识
     */
    @ApiModelProperty("上级被评对象目标周期标识")
    private String parentEvaObjTargetCycleId;

    /**
     * 数据归属内容表主键ID
     */
    @NotNull(message = "数据归属内容表主键ID不能为空")
    @ApiModelProperty("数据归属内容表主键ID")
    private String belongToContentId;

    /**
     * 被评对象内容表主键ID
     */
    @NotNull(message = "被评对象内容表主键ID不能为空")
    @ApiModelProperty("被评对象内容表主键ID")
    private String evaObjEntityId;

    /**
     * 被评对象类型编码
     */
    @NotNull(message = "被评对象类型编码不能为空")
    @ApiModelProperty("被评对象类型编码")
    private String evaObjTypeCode;

    /**
     * 评价模板ID
     */
    @NotNull(message = "评价模板ID不能为空")
    @ApiModelProperty("评价模板ID")
    private String evaluationTemplateId;

    /**
     * 事务内数据更新批次标识
     */
    @NotNull(message = "事务内数据更新批次标识不能为空")
    @ApiModelProperty("事务内数据更新批次标识")
    private String eventBatchUpdateCode;

    /**
     * 计算开始时间
     */
    @NotNull(message = "计算开始时间不能为空")
    @ApiModelProperty("计算开始时间")
    private String calcStartTime;

    /**
     * 目标得分单位
     */
    @NotNull(message = "目标得分单位不能为空")
    @ApiModelProperty("目标得分单位")
    private String targetScoreUnit;

    /**
     * 数据计算正常与异常场景
     */
    @NotNull(message = "数据计算正常与异常场景不能为空")
    @ApiModelProperty("数据计算正常与异常场景")
    private String dataCalcNormalAbnormal;

}
